The present invention relates to data processing systems and more particularly to means for allocating memory resources for programs and for locating such programs in a timely manner.
In data processing systems, it is often necessary to duplicate the operations of older data processing systems by what is called the emulation process. The older, or emulated data processing system, may include several hundred instructions, which in the older data processing system, would function as instructed. If such received instruction designed for use in the older data processing system is to be utilized by a new data processing system, it is usually necessary to provide an instruction or group of instructions, i.e. a program or routine so as to execute in the new data processing system in the same manner as the old data processing system.
These programs associated with such received instructions, are usually stored in the system's memory. One manner of locating these programs is to simply link the received instruction to an address of the corresponding program in the memory. However, it is not always possible to store all of the programs in memory because of generally a lack or restriction on memory resource capacity. Thus, only a certain number of programs may be stored in the memory.
One manner of solving this problem might be to store some of the programs in a secondary storage media, such as a disk. However, it has been found that the time it takes to fetch a program from a disk is generally longer than the time it would take to actually generate or build a program in accordance with the requirements of the received instruction.
Thus, as indicated hereinabove, the allocation of memory resources to various programs must be considered and in addition the speed of access to these programs in response to a received instruction must also be considered as for example where such programs are associated with input and output operations between the data processing system and peripheral devices associated therewith, where transfer of data at extremely high speeds is required.
It is accordingly an object of the invention to provide an improved technique for allocating space for programs in a computer's memory in order to effectively utilize such memory space.
It is a further object of the invention to provide such improved system which includes a technique for not only efficiently allocating memory resources but to also efficiently and in a speedy manner search for and locate a particular program associated with the received instruction.
The invention accordingly comprises the features of construction, combination of elements and arrangement of parts exemplified in an embodiment hereinafter set forth and the scope of the invention is indicated in the claims.